1. Field of the Invention
This invention relates to network arrangements and protocols for real-time communications. More particularly, this invention relates to interconnection and transfer of information or other signals between, memories, input/output devices or central processing units by remote direct memory access.
2. Description of the Related Art
The meanings of certain acronyms and abbreviations used herein are given in Table 1.
TABLE 1Acronyms and AbbreviationsCASCompare-and-swapFAADFetch and AddFIFOFirst In First OutIBInfiniBandiWARPInternet Wide Area RDMA ProtocolLIFOLast In Last OutMPIMessage Passing InterfaceNICNetwork Interface CardQPQueue pairRDMARemote Direct Memory AccessRoCERDMA over Converged EthernetWQEWork Queue Element
RDMA is a direct memory access from the memory of one computer into that of another without involving either one's operating system. Common RDMA implementations include RDMA over converged Ethernet (RoCE), InfiniBand and iWARP. RDMA supports a limited set of atomic operations:
(1) Fetch-and-add (FAAD). This atomically modifies the contents of a memory location: set x to x+a, where x is a memory location and a is some value.
Data in the location prior to the add operation is returned to the requestor. When this operation is executed in a concurrent environment, no other process ever sees an intermediate result.
(2) Compare-and-swap (CAS). This operation reads remote data, compares it with a compare value, and if they are equal, swaps the remote data with given swap data. Atomicity of the CAS operation assures that the new value is calculated based on up-to-date information; if the remote data had been updated by another thread in the meantime, the substitution would fail. The result of the operation should indicate whether the substitution succeeded or failed.
RDMA is often mediated by a message passing protocol. Message Passing Interface (MPI) is a communication protocol that is widely used for exchange of messages among processes in high-performance computing systems. Such systems typically use RDMA transport. With MPI, a user can define a group of processes, called a communicator. Each communicator has a unique communicator identifier (an integer) with respect to all other communicators on the system.
In one example, U.S. Patent Application Publication No. 2010/0106948 proposes management of a shared message queue that involves RDMA access to the queue. Processing devices cooperate to process the queue data. When one processing device successfully accesses queue data, the queue data is locked for the exclusive use of that processing device. The processing device is able to process the data and return processed queue data.